<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
class Preoperatorio_model extends CI_Model{
      function insertarCama($cita, $proc, $cama) {
        $data1 = array(
            'Estado' => 1
        );
        $this->db->where('Ambiente', $cama);
        $this->db->update('ambiente', $data1);

        $data = array(
            'Procedimiento' => $proc,
            'Ambiente' => $cama,
            'Estado' => 1
        );
        if ($this->db->insert('asigpacientesitio', $data)) {
            //actualizar Estado en tabla CITA a atendido => Estado=1
            $data = array(
                'Estado' => '1'
            );
            $this->db->where('Cita', $cita);
            $this->db->update('cita', $data);
            return "ok";
        } else {
            return "error";
        }
    }
    function guardarEquipo($equipos,$cantEquipos,$idProd){
        $i=0;
        $dato=array();
        if(count($equipos)>0){
            foreach($equipos as $valEqu){
            $dato=array ('Equipo'=>$valEqu,'Procedimiento'=>$idProd,'Cantidad'=>$cantEquipos[$i]);
            $this->db->insert('equipoxcirugia', $dato); 
            $i++;
        }
        }                
    }
    function getTiposExamen(){
        $query = $this->db->query("Select * from especialidad where EspecialidadPadre=2 or EspecialidadPadre=3");
        return $query->result_array();
    }
    function getCiru(){
        $query = $this->db->query("Select Especialidad as value, Descripcion as label from especialidad where EspecialidadPadre=4");
        return $query->result_array();
    }
  
    
    function cargarAmbientes(){
        $cad = 'SELECT Ambiente,Descripcion Descripcion FROM ambiente where  TipoAmbiente=2';
        return $this->db->query($cad)->result_array();
    }
    
    function insertarOrden($idPaciente,$idDoctor,$estado,$exames,$detalles){
        //Se registran los examenes del paciente
        $ind=0;        
        if($exames!=-1){
            //selecciono la historia clinica
            $queryOrden= $this->db->query("SELECT HistoriaClinica as historia FROM  `historiaclinica` where Persona=$idPaciente");
            $idhist=$queryOrden->result_array();           
            $idhistoria=$idhist[0]['historia'];
            //se inserta un nuevo porcedimiento
            $sql="INSERT INTO `procedimiento` (`Persona` ,`Fecha` ,`HistoriaClinica`) VALUES ($idPaciente, NOW(), $idhistoria)";   
            $this->db->query($sql);  
            $examOrden=$this->db->query("SELECT MAX(`Procedimiento` ) as proc FROM  `procedimiento`");
            $ideproc=$examOrden->result_array();           
            $idproc=$ideproc[0]['proc'];
            //se inserta en consulta
            //IDPERSONAL
            $personal=$this->db->query("SELECT Persona FROM  `personal` where CodigoPersonal like '%$idDoctor%'");
            $idpersonal=$personal->result_array();
            $idper=$idpersonal[0]['Persona'];
            $sql="INSERT INTO `consulta` (`Procedimiento`, `Especialidad`, `FechaInicio`, `FechaFin`, `PersonaD`, `Resultado`, `NumeroDeSesion`, `OrdenIngreso`) VALUES
            ($idproc, 4, NOW(), NOW(), $idper, NULL, NULL, NULL)";
            $this->db->query($sql);
            //SE INSERTAN LOS EXAMENES 
            
            foreach ($exames as $exam){//oreden de tipo 1 es examen
                $sql="INSERT INTO `orden` (`FechaOrden`, `Indicaciones`, `NumeroSesiones`, `Procedimiento`, `EstadoOrden`, `Especialidad`) VALUES
                (NOW(), '$detalles[$ind]', 0,$idproc, 1, $exam)";
                $this->db->query($sql);           
                $queryOrden= $this->db->query("SELECT MAX(`orden` ) as maximo FROM  `orden`");
                $idOrden=$queryOrden->result_array();                        
                $orden=$idOrden[0]['maximo'];                        
                $gruporden=$this->db->query("SELECT MAX(`idgrupo` ) as grupo FROM  `grupoexampreop`");
                $idgruporden=$gruporden->result_array();
                $idgrupo=$idgruporden[0]['grupo'];
                if(is_null($idgruporden)){//si es el primero en insertar
                    $idgruporden=1;                
                }
                else $idgrupo++;
                $sql="INSERT INTO `grupoexampreop` (`idgrupo` ,`PersonaD` ,`paciente` ,`fecha` ,`estado`,`Orden`) VALUES 
                    ('".$idgrupo."','".$idper."',  '".$idPaciente."',NOW(),  '".$estado."','".$orden."')";
                $this->db->query($sql);
                $ind++;
            }            
        }
        //Se registran la relacion ordenes paciente
//        $sql="insert into ordenpreoperatoria ( estado, fecha,idDoctor, idPaciente,idExamen) values(".$estado.",NOW(),".$idDoctor.",".$idPaciente.",";
//        foreach ( $examenes as $examen){            
//            $sql=$sql.$examen[0].")";//se inserta id examen
//            $query = $this->db->query($sql);
//        }
        
               
    }
    function buscarOrdenPreop($idGrupo){
            $this->load->model('cirugia_model');
            return $this->cirugia_model->buscarOrden($idGrupo,"","","","");
            
        }
    function buscarExamenesOrden($idGrupo){
        $sql="SELECT ord.Especialidad idEsp, esp.Descripcion EspDescrip, ord.Indicaciones Indic, est.Descripcion EstDescrip FROM (SELECT Orden FROM  `grupoexampreop` WHERE idgrupo =$idGrupo)gru, orden ord, especialidad esp, estadoorden est
        WHERE gru.Orden = ord.Orden AND esp.Especialidad = ord.Especialidad AND ord.EstadoOrden = est.EstadoOrden";
        $ordenesExam=$this->db->query($sql);
        return $ordenesExam->result_array();
    }
    
    function buscarNomDoctor($codDoc){
        $sql="select doc.Nombres nombres, doc.Apellido_Paterno apePat
            from persona doc
            where doc.Persona= $codDoc";
        $nomApeDoc= $this->db->query($sql);
        return $nomApeDoc->result_array();
    }
    
    function InsertarCitaCirugia($orden1,$procedimiento1,$personaP1,$Fecha1,$Especialidad1,$estado1){
        $this->db->insert('cita', array('Orden' => $orden1,'Procedimiento'=>$procedimiento1,'PersonaP'=>$personaP1,'Fecha'=>$Fecha1,'Especialidad'=>$Especialidad1,'Estado'=>$estado1 ));
        return $this->db->insert_id();        
    }
    
    function creaProcedimiento($persona,$especialidad, $fecha,$personal, $idCita, $resultado, $indicaciones){        
         $sql = $this->db->query("
            select
            HistoriaClinica historia
            from historiaclinica where Persona=$persona
            ;");
       
         $row=$sql->result_array();          
        $historia_clinica=  $row[0]['historia'];        
        $this->db->insert('procedimiento', array('Fecha' => date("Y-m-d H:i:s"),'HistoriaClinica'=>$historia_clinica,'Persona'=>$persona,'EstadoProcedimiento'=>"1" ));
        $idProc=$this->db->insert_id(); 
        $datos=array( 'Procedimiento'=>$idProc,'Especialidad'=>$especialidad,'FechaInicio'=>$fecha,'FechaFin'=>$fecha,'PersonaD'=>$personal
            ,'Resultado'=>$resultado,'Cita'=>$idCita,'Indicaciones'=>$indicaciones);
        $this->db->insert('consulta', $datos);
        return $idProc;
    }
    function buscarIDPersonal2($codigo){        
        $query = $this->db->get_where('personal', array('CodigoPersonal' => $codigo));;
        return $query->result_array();                 
    }
    function buscarIDPersonal($codigo){        
        $query = $this->db->get_where('personal', array('CodigoPersonal' => $codigo));;
        $row=$query->result_array();         
        return $row[0];       
    }
    function regPlanificacio($orden,$procedimiento,$personaP,$Fecha,$Especialidad,$estado,$empleados,$Diagnos,$Riesgo,
        $Planqui,$Ambi,$PlanTer,$prono,$Clasi,$Tipo, $medicamentos, $cantidades,$personalReg,$ambiHosp,$equipos,$cantEquipos){        
               
//Se registra la cita
        $idCita=$this->InsertarCitaCirugia($orden,$procedimiento,$personaP,$Fecha,$Especialidad,$estado);
        //se inserta los detalles
        $personaRe=$this->buscarIDPersonal($personalReg); 
        $idProc=$this->creaProcedimiento($personaP,$Especialidad, $Fecha,$personaRe['Persona'], $idCita, '', '');
        
        $Actu=array('Procedimiento'=>$idProc);//se actualiza a En proceso
        $this->db->where('Cita', $idCita);
        $this->db->update('cita', $Actu);
        $this->insertarCama($idCita, $idProc, $ambiHosp);
        $datos=array('Orden' => $orden,'Diagnostico'=>$Diagnos, 'RiesgoPreop'=>$Riesgo,'PlanQuiru'=>$Planqui,'Especialidad'=>$Especialidad ,
            'Ambiente'=>$Ambi,'PlanTerap'=>$PlanTer,'Pronostico'=>$prono,'ClasificacionCiru'=>$Clasi,'TipoCiru'=>$Tipo,
            'FechaOperacion'=>$Fecha,'Procedimiento'=>$idProc);
        $this->db->insert('detallecirugia', $datos);
        $this->guardarEquipo($equipos,$cantEquipos,$idProc);
        $datos['Procedimiento']=$idProc;
        //se insertara el personal        
        if(!empty($empleados)){
            $elemts=count($empleados);            
            for($i=0;$i<$elemts;$i++){                
                $personaDoc=$this->buscarIDPersonal2($empleados[$i]); 
                if(count($personaDoc)!=0){
                    $personaD=$personaDoc[0];
                    $datemp=array('Cita'=>$idCita,'Persona'=>$personaD['Persona']);
                    $this->db->insert('citaxpersonal', $datemp);
                }                
            }           
        }        
        $Actu=array('EstadoOrden'=>2);//se actualiza a En proceso
        $this->db->where('Orden', $orden);
        $this->db->update('orden', $Actu); 
        // ahora se insertar� lo referente a los medicamentos
        
        $ind=0;        
        if($medicamentos!=""){
            $examOrden=$this->db->query("SELECT MAX(`Procedimiento` ) as proc FROM  `procedimiento`");
            $ideproc=$examOrden->result_array();           
            $idproc=$ideproc[0]['proc'];
            foreach ($medicamentos as $med){
                $cant= (int)$cantidades[$ind];
                $sql="INSERT INTO `medicamentoxcirugia` (`Procedimiento`, `Producto`, `Cantidad`) VALUES
                ($idproc, $med, $cant)";
                $this->db->query($sql);
                $ind++;
            }            
        }
        //se actualiza el estado del paciente
        $estPac=array('EstadoPaciente'=>21);        
        $this->db->where('Persona', $personaP);
        $this->db->update('paciente', $estPac);
        
    }
    
    
}
?>
